قبل از توضیح مشکل بگذارید ابتدا یک مقدمه در رابطه با چگونگی مشاهده صفحات و سایتهای اینترنتی عرض کنم. وقتی کاربری آدرس یک سایت را در مرورگر خود تایپ میکند، مرورگر کاربر و در واقع سیستم عامل کاربر ابتدا تلاش میکند IP مربوط به سایت درخواست شده را پیدا کند(تبدیل نام سایت به IP)،  اینکار با استفاده از DNS Server های شرکت سرویس دهنده اینترنت و یا سرویسهای DNS عمومی که توسط گوگل یا شرکت سان و.. عرضه می شود صورت می گیرد. پس از پیدا کردن IP ، کامپیوتر کاربر به وب سرور سایت که با آن IP مشخص شده است وصل شده و پیامی متنی برای آن ارسال میکند که شامل بخش اصلی آدرس سایت (مانند yahoo.com) و آدرس صفحه در آن سایت (مانند index.html/ ) و اطلاعات دیگری مانند کوکی ها و یا نام مرورگر کاربر است. درخواست متنی ارسالی توسط مروگر کاربر به پورت 80 وب سرور سایت میتوانید شبیه عبارت زیر باشد که به آن سرآیند HTTP Request می گویند.

GET /en-us/about HTTP/1.1
Host: microsoft.com
Connection: Close
Accept: text/plain, text/html
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1

پس از ارسال درخواست، وب سرور به آن پاسخ میدهد که میتوانید یک صفحه  HTML یا یک تصویر و... باشد و در نهایت مرورگر آنرا به کاربر نشان میدهد. همانطور که اشاره شد روال تشخیص IP وب سرور در این فرایند یکبار صورت میگیرد اما در این میان باید به  پراکسی ها (واسط‌ ها) نیز اشاره کرد. در پراکسی کاربر به جای اتصال مستقیم به IP وب سرور سایت به IP پراکسی سرور وصل شده و درخواست خود را به آنجا ارسال و سپس پراکسی سرور آنرا به وب سرور اصلی ارسال و نتیجه را برای کاربر ارسال می کند. با توجه به اینکه این روند در حالتی که شماره پورت متفاوت باشد میتواند به نوعی باعث دور زدن سیستم فیلترینگ شود، در ایران از چند سال پیش نظارت کاملی رو سرآیند (Header) درخواستهای HTTP کاربر صورت گرفته و در واقع  چند سالی است که با این شیوه نمیتوان به سایتهای فیلتر شده دسترسی داشت.
اما نظارت و جلوگیری از دسترسی به سایتهای مسدود شده یک چیز است و دستکاری در درخواست کاربران و فعالیت به عنوان یک پراکسی سرور چیز دیگری...
چند روز پیش متوجه شدم که در چندین سرویس دهنده اینترنت کشور (از جمله مخابرات) تغییراتی صورت گرفته است که به نوعی باعث دوباره کاری روند ارسال درخواستهای HTTP کاربران می شود.  بدین شکل که وقتی کاربر به سرور سایتی با IP مشخص وصل شده است همچنان سرآیند درخواستهای HTTP او بررسی و گزینه Host مجدد بازبینی و  در سرورهای واسط شرکتهای سرویس دهنده یا زیرساخت مجدد روند پیدا کردن IP از DNS Server ها صورت میگرد. نتیجه چنین کاری کمی خنده دار شده است، برای مثال شما به وب سرور سایت Yahoo وصل شده اید در حالت معمولی اگر شما در گزینه Host در سرآیند  عبارتی غیر از دامنه Yahoo داشته باشد (مثلا msn.com ) پیام خطایی در ارتباط با عدم صحت درخواست به شما میدهد اما با توجه تغییراتی که اینترنت ایران صورت گرفته است شما محتوای سایت msn را دریافت خواهید کرد!. شما به راحتی میتوانید اینکار را تست کنید کافیست  دستور   telnet yahoo.com 80 را تایپ کنید و عبارتی شبیه عبارت زیر را آنجا نوشته و مستقیما paste کنید و دوبار دکمه Enter را بزنید


GET / HTTP/1.1
Host: www.msn.com
Connection: Close

همانطور که خواهید دید به جای دریافت پیام خطا یا حداقل صفحه ای از سایت یاهو شما محتوای HTML سایت MSN را خواهید دید و این تقریبا در مورد همه سایتها امکان پذیر است و میتواند یه سرور هر سایت دلخواهی وصل و محتوای یک سایت دیگر را دریافت کنید! چنین پروسه ای بصورت حداقلی باعث کندی بررسی درخواستهای کاربران برای  مشاهده صفحات وب سایتها می شود  چرا که حداقل در هر بار ارسال درخواست صفحات یا دریافت تصاویر سایت یکبار هم روند تبدیل نام سایت به IP توسط سرورهای واسط در شرکتهای سرویس دهنده یا زیرساخت صورت می گیرد. اما این دستکاری (ارسال محتوای یک سایت دیگر در زمان اتصال کاربر به سرور سایت دیگری)  حداقل از لحاظ امنیت شبکه کار درستی نیست چرا که در این حالت این شبکه اینترنت کشور نقش یک واسط بی دقت را بازی میکنند.
من دقیقا نمی دانم که آیا این روند در همه شرکتهای سرویس دهنده در حال انجام است یا خیر و یا اینکار توسط سرویس دهنده ها صورت گرفته یا از طرف زیرساخت است و یا توسط سرورهای فیلترینگ صورت می گیرد اما هرچه است باید بازنگری شود.

تکمیلی: یک روز پس از انتشار این مطلب، مشکل اشاره شده (اگرچه مدتها وجود داشت) برطرف شد.



نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه: